⚠️ Apple devices only.
Retrieve a paginated list of all uploaded versions of a specific iOS provisioning profile, ordered by expiration date descending. Each version corresponds to a separate .mobileprovision file upload made for the same App ID. Results include Apple-extracted metadata (UUID, expiration date, entitlements, platforms, developer certificates) and a signed download_url for the version file. Results default to 10 per page and support search by version name.
About List Provisioning Profile Versions
Esper allows multiple versions of a provisioning profile to exist under a single profile record (shared App ID), reflecting real-world scenarios where profiles are renewed or updated over time. This endpoint surfaces that version history in descending expiration order — most recent first — making it straightforward to identify which version is current and which are expired. Version IDs retrieved here are used when attaching a specific version to a blueprint or when deleting an obsolete version.
Key Fields / Query Parameters
id (path, required) — Esper UUID of the parent provisioning profile
limit — Max results per page; defaults to 10
offset — Records to skip for pagination; defaults to 0
search — Search within version names
expiration_date (response) — When this version expires; results are ordered by this field descending
uuid (response) — Apple's own UUID for this profile version, distinct from Esper's internal id
provisions_all_devices (response) — true for enterprise profiles that provision all devices without explicit device registration
sha256_hash (response) — Hash of the file, used for duplicate detection on upload
Common Use Cases
Reviewing the version history of a profile to confirm which version is currently active in a blueprint
Identifying expired versions to clean up via the delete endpoint
Retrieving a specific version_id needed to fetch or delete an individual version
Best Practices
Versions are ordered by expiration_date descending; the first result is the most recently expiring (current) version
Use sha256_hash to detect duplicate uploads before uploading a new version
When renewing profiles, upload the new version first, update the blueprint to reference the new version, then delete the old version
- Mock serverhttps://api.esper.io/_mock/openapi/v2/provisioning-profiles/{id}/versions
- https://develop-api.esper.cloud/apihttps://develop-api.esper.cloud/api/v2/provisioning-profiles/{id}/versions
curl -i -X GET \
'https://api.esper.io/_mock/openapi/v2/provisioning-profiles/{id}/versions?limit=10&offset=0&search=string' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "content": { "count": 0, "prev": "string", "next": "string", "results": [ … ] } }